#pragma once

#include <list>
using namespace std;

class InteractivityLayer
{
public:
	struct Base
	{
		int x;
		int y;
	};


	struct Waypoint
	{
		//Index is probably unnecessary, as long as the waypoints are stored
		//	in a vector or list or something,
		int index;
		int x;
		int y;
	};

	struct SpawnPoint
	{
		int index;
		int x;
		int y;

		list<Waypoint*> Waypoints;
	};

	struct Spawn
	{
		int enemyType;
		int quantity;

		//All wave times will be in whole seconds
		// i.e.  A duration of 1 will be 1000 miliseconds
		int duration;

		//How many seconds to wait after the wave begins to start spawning
		//	enemies
		int delay;


		//This determines which spawner this spawn will...spawn from.
		int spawnIndex;
	};

	struct Wave
	{
		//All wave times will be in whole seconds
		// i.e.  A duration of 1 will be 1000 miliseconds

		//When a wave's duration is up, no more enemies will be spawned
		//The player must manually start the next wave
		int index;
		int duration; 

		list<Spawn*> SpawnList;
	};

	Base m_Base;
	list<SpawnPoint*> m_SpawnPoints;
	list<Wave*> m_Waves;
};



